/*
#**************************************************************************
#  openSIS is a student information system for public and non-public 
#  schools from Open Solutions for Education, Inc. web: www.os4ed.com
#
#  openSIS is  web-based, open source, and comes packed with features that 
#  include student demographic info, scheduling, grade book, attendance, 
#  report cards, eligibility, transcripts, parent portal, 
#  student portal and more.   
#
#  Visit the openSIS web site at http://www.opensis.com to learn more.
#  If you have question regarding this system or the license, please send 
#  an email to info@os4ed.com.
#
#  This program is released under the terms of the GNU General Public License  
#  as  published by the Free Software Foundation, version 2 of the License. 
#  See license.txt.
#
#  This program is distributed in the hope that it will be useful,
#  but WITHOUT ANY WARRANTY; without even the implied warranty of
#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#  GNU General Public License for more details.
#
#  You should have received a copy of the GNU General Public License
#  along with this program.  If not, see <http://www.gnu.org/licenses/>.
#
#**************************************************************************** 
*/
using System;
using System.Data;
using System.Collections;
using System.Collections.Specialized;
using System.Text;

namespace calendar.Data
{
public class DataCommand
{
private ParameterCollection mParameters=new ParameterCollection();
private StringBuilder _sql;
private string _sqlStore;
private string _orderBy="";
private DataAccessObject _dao;
    public DataCommand()
    {
    }
    public ParameterCollection Parameters
    {
        get{return mParameters;}
        set{mParameters=value;}
    }
    public StringBuilder SqlQuery
    {
        get{return _sql;}
        set{_sql = value; _sqlStore = value.ToString();}
    }
    public DataAccessObject Dao
    {
        get{return _dao;}
        set{_dao=value;}
    }
    public string OrderBy
    {
        get{return _orderBy;}
        set{_orderBy=value;}
    }

    public string DateFormat
    {
        get{return Dao.DateFormat;}
        set{Dao.DateFormat=value;}
    }

    public string BoolFormat
    {
        get{return Dao.BoolFormat;}
        set{Dao.BoolFormat=value;}
    }

    public void Reset()
    {
        Parameters.Clear();
        _sql = new StringBuilder(_sqlStore);
    }
    public DataSet Execute()
    {
        return ExecuteImpl();
    }
    public DataSet Execute(int startRecord, int maxRecords)
    {
        return ExecuteImpl(startRecord,maxRecords);
    }
    public object ExecuteNonQuery()
    {
        return ExecuteNonQueryImpl();
    }
    public object ExecuteScalar()
    {
        return ExecuteScalarImpl();
    }
    public IDataReader ExecuteReader()
    {
        return ExecuteReaderImpl();
    }
    protected virtual DataSet ExecuteImpl()
    {
        return null;
    }
    protected virtual DataSet ExecuteImpl(int startRecord, int maxRecords)
    {
        return null;
    }
    protected virtual object ExecuteNonQueryImpl()
    {
        return 0;
    }
    protected virtual object ExecuteScalarImpl()
    {
        return 0;
    }
    protected virtual IDataReader ExecuteReaderImpl()
    {
        return null;
    }
}
}
//End DataBaseDataProvider Class

